//package com.shopcart.pay;
//
//import java.io.BufferedReader;
//import java.io.IOException;
//import java.io.InputStream;
//import java.io.InputStreamReader;
//import java.math.BigDecimal;
//import java.math.RoundingMode;
//import java.util.Enumeration;
//import java.util.HashMap;
//import java.util.Iterator;
//import java.util.Map;
//import java.util.Map.Entry;
//import java.util.SortedMap;
//import java.util.TreeMap;
//
//import javax.servlet.http.HttpServletRequest;
//import javax.servlet.http.HttpServletResponse;
//
//import org.apache.commons.lang3.StringUtils;
//import org.apache.log4j.Logger;
//import org.springframework.beans.factory.annotation.Autowired;
//import org.springframework.jdbc.core.JdbcTemplate;
//import org.springframework.stereotype.Controller;
//import org.springframework.web.bind.annotation.RequestMapping;
//import org.springframework.web.bind.annotation.RequestMethod;
//
//import com.alibaba.fastjson.JSONObject;
//import com.demo.util.GetuiStorePushUtil;
//import com.demo.util.StringUtil;
//import com.shopcart.domain.Order;
//import com.shopcart.domain.Store;
//import com.shopcart.pay.ali.AlipayNotify;
//import com.shopcart.pay.wx.WxPrepay;
//import com.shopcart.pay.wx.util.XMLUtil;
//import com.shopcart.service.OrderService;
//import com.unionpay.acp.sdk.LogUtil;
//import com.unionpay.acp.sdk.SDKConstants;
//import com.unionpay.acp.sdk.SDKUtil;
//
//@Controller
//public class PayMobileController{
//	
//	private Logger logger = Logger.getLogger(getClass());
//
//	@Autowired
//	private JdbcTemplate jdbcTemplate;
//
//	@Autowired
//	private OrderService orderService;
//
//
//	/**
//	 * 获取支付宝GET过来反馈信息
//	 */
//	@RequestMapping(value = "/payReturn")
//	public String payReturn(HttpServletRequest request, HttpServletResponse response) throws Exception {
//		logger.info("$$$$收到支付宝return信息,进入return流程!");
//
//		try {
//			//获取支付宝GET过来反馈信息
//			Map<String,String> params = new HashMap<String,String>();
//			Map requestParams = request.getParameterMap();
//			for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
//				String name = (String) iter.next();
//				String[] values = (String[]) requestParams.get(name);
//				String valueStr = "";
//				for (int i = 0; i < values.length; i++) {
//					valueStr = (i == values.length - 1) ? valueStr + values[i]
//							: valueStr + values[i] + ",";
//				}
//				//乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
////				valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
//				params.put(name, valueStr);
//			}
//			
//			//获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//			//商户订单号
//
//			String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//支付宝交易号
//
//			String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//交易状态
//			String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
//			
//			//名称
//			String subject = new String(request.getParameter("subject").getBytes("ISO-8859-1"),"UTF-8");
//			
//			params.put("subject", subject);
//			//计算得出通知验证结果
//			boolean verify_result = AlipayNotify.verify(params);
//
//			if (verify_result) {// 验证成功
//				if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){
//					logger.info("$$$$支付后业务验证成功-开始进行关闭跳转");
//					response.setContentType("text/html;charset=utf-8");
//					response.getWriter().println("<script type='text/javascript' > window.top.location.href='"+PropertySupport.getProperty("self.url")+"m/home"+"';</script>");
//				}
//			} else {
//				logger.info("$$$$充值支付验证失败——商户订单号:" + out_trade_no + ";支付宝交易号:" + trade_no + ",交易状态:" + trade_status);
//				response.setContentType("text/html;charset=utf-8");
//				response.getWriter().println("验证失败");
//			}
//		} catch (Exception e) {
//			logger.info("$$$$充值支付后业务逻辑异常:" + e.getMessage(), e);
//			try {
//				response.setContentType("text/html;charset=utf-8");
//				response.getWriter().println("业务逻辑异常");
//			} catch (IOException e1) {
//				e1.printStackTrace();
//			}
//		}
//		return null;
//	}
//
//	/**
//	 * 获取支付宝GET过来反馈信息
//	 */
//	@RequestMapping(value = "/payReturnWeb")
//	public String payReturnWeb(HttpServletRequest request, HttpServletResponse response) throws Exception {
//		logger.info("$$$$收到支付宝return信息,进入return流程!");
//
//		try {
//			//获取支付宝GET过来反馈信息
//			Map<String,String> params = new HashMap<String,String>();
//			Map requestParams = request.getParameterMap();
//			for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
//				String name = (String) iter.next();
//				String[] values = (String[]) requestParams.get(name);
//				String valueStr = "";
//				for (int i = 0; i < values.length; i++) {
//					valueStr = (i == values.length - 1) ? valueStr + values[i]
//							: valueStr + values[i] + ",";
//				}
//				//乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
////				valueStr = new String(valueStr.getBytes("ISO-8859-1"), "utf-8");
//				params.put(name, valueStr);
//			}
//			
//			//获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//			//商户订单号
//
//			String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//支付宝交易号
//
//			String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//交易状态
//			String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
//			
//			//名称
//			String subject = new String(request.getParameter("subject").getBytes("ISO-8859-1"),"UTF-8");
//			
//			params.put("subject", subject);
//			//计算得出通知验证结果
//			boolean verify_result = com.h5.pay.ali.util.AlipayNotify.verify(params);
//
//			if (verify_result) {// 验证成功
//				if(trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")){
//					logger.info("$$$$支付后业务验证成功-开始进行关闭跳转");
//					response.setContentType("text/html;charset=utf-8");
//					response.getWriter().println("<script type='text/javascript' > location.href='"+PropertySupport.getProperty("self.url")+"web/userCenter/order"+"';</script>");
//				 
//				}
//			} else {
//				logger.info("$$$$充值支付验证失败——商户订单号:" + out_trade_no + ";支付宝交易号:" + trade_no + ",交易状态:" + trade_status);
//				response.setContentType("text/html;charset=utf-8");
//				response.getWriter().println("验证失败");
//			}
//		} catch (Exception e) {
//			logger.info("$$$$充值支付后业务逻辑异常:" + e.getMessage(), e);
//			try {
//				response.setContentType("text/html;charset=utf-8");
//				response.getWriter().println("业务逻辑异常");
//			} catch (IOException e1) {
//				e1.printStackTrace();
//			}
//		}
//		return null;
//	}
//	
//	/**
//	 * 获取支付宝Notify过来反馈信息
//	 */
//	@RequestMapping(value = "/payNotify")
//	public void payNotify(HttpServletRequest request,
//			HttpServletResponse response) throws Exception {
//		logger.info("$$$$收到支付宝notify信息,进入notify流程!");
//		try {
//			//获取支付宝POST过来反馈信息
//			Map<String,String> params = new HashMap<String,String>();
//			Map requestParams = request.getParameterMap();
//			for (Iterator iter = requestParams.keySet().iterator(); iter.hasNext();) {
//				String name = (String) iter.next();
//				String[] values = (String[]) requestParams.get(name);
//				String valueStr = "";
//				for (int i = 0; i < values.length; i++) {
//					valueStr = (i == values.length - 1) ? valueStr + values[i]
//							: valueStr + values[i] + ",";
//				}
//				//乱码解决，这段代码在出现乱码时使用。如果mysign和sign不相等也可以使用这段代码转化
//				//valueStr = new String(valueStr.getBytes("ISO-8859-1"), "gbk");
//				params.put(name, valueStr);
//			}
//			
//			//获取支付宝的通知返回参数，可参考技术文档中页面跳转同步通知参数列表(以下仅供参考)//
//			//商户订单号
//
//			String out_trade_no = new String(request.getParameter("out_trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//支付宝交易号
//
//			String trade_no = new String(request.getParameter("trade_no").getBytes("ISO-8859-1"),"UTF-8");
//
//			//交易状态
//			String trade_status = new String(request.getParameter("trade_status").getBytes("ISO-8859-1"),"UTF-8");
//
//			if(com.h5.pay.ali.util.AlipayNotify.verify(params)){//验证成功
//				if (trade_status.equals("TRADE_FINISHED") || trade_status.equals("TRADE_SUCCESS")) {
//					String buyerEmail = new String(request.getParameter("buyer_email").getBytes("ISO-8859-1"),"UTF-8");
//					BigDecimal total = new BigDecimal(request.getParameter("total_fee"));
//					// 支付成功后执行相关业务
//					afterPay(out_trade_no, trade_no, trade_status, buyerEmail, total,1);
//				} else {
//					logger.info("$$$$支付交易状态未知——商户订单号:" + out_trade_no + ";支付宝交易号:" + trade_no + ",交易状态:" + trade_status);
//				}
//			} else {
//				logger.info("$$$$支付验证失败——商户订单号:" + out_trade_no + ";支付宝交易号:" + trade_no + ",交易状态:" + trade_status);
//			}
//			ResponseUtils.renderText(response, "success");
//		} catch (Exception e) {
//			logger.info("$$$$支付后业务逻辑异常:" + e.getMessage(), e);
//			ResponseUtils.renderText(response, "fail");
//		}
//	}
//	
//	
//	public void mobilePay(HttpServletRequest request,
//			HttpServletResponse response) throws Exception {
//		String platform = new String(request.getParameter(
//				"platform").getBytes("ISO-8859-1"), "UTF-8");
//		Integer payType = 1;
//		
//		if (StringUtils.isNotBlank(platform)){
//			payType = Integer.valueOf(platform);
//		}
//		
//		
//		
//	}
//
//	/**
//	 * 获取支付宝Notify过来反馈信息 mobilePayNotify.do
//	 */
//	@RequestMapping(value = "/mobilePayNotify")
//	public void mobilePayNotify(HttpServletRequest request,
//			HttpServletResponse response) throws Exception {
//		logger.info("$$$$收到支付宝notify信息,进入notify流程!");
//		try {
//			// 获取支付宝POST过来反馈信息
//			Map<String, String> params = new HashMap<String, String>();
//			Map<String, String[]> requestParams = request.getParameterMap();
//			for (Iterator<String> iter = requestParams.keySet().iterator(); iter
//					.hasNext();) {
//				String name = iter.next();
//				String[] values = (String[]) requestParams.get(name);
//				String valueStr = "";
//				for (int i = 0; i < values.length; i++) {
//					valueStr = (i == values.length - 1)
//							? valueStr + values[i]
//							: valueStr + values[i] + ",";
//				}
//				params.put(name, valueStr);
//			}
//			// 商户订单号
//			String out_trade_no = new String(request.getParameter(
//					"out_trade_no").getBytes("ISO-8859-1"), "UTF-8");
//			// 支付宝交易号
//			String trade_no = new String(request.getParameter("trade_no")
//					.getBytes("ISO-8859-1"), "UTF-8");
//			// 交易状态
//			String trade_status = new String(request.getParameter(
//					"trade_status").getBytes("ISO-8859-1"), "UTF-8");
//			// 买家付款账号
//			String buyerEmail = StringUtils.defaultIfEmpty(
//					request.getParameter("buyer_email"), StringUtils.EMPTY);
//			BigDecimal total = new BigDecimal(params.get("total_fee"));
//
//			// String appid =
//			// jdbcTemplate.queryForObject("select app_id from b_order where id = ?",
//			// new Object[] { out_trade_no }, String.class);
//
//			// 获得支付信息
//			String payKey = PayPropertySupport.getProperty("pay.ali.publicKey");
//
//			if (AlipayNotify.verifyMobileNotify(params, payKey)) {// 验证成功
//				if (trade_status.equals("TRADE_FINISHED")
//						|| trade_status.equals("TRADE_SUCCESS")) {
//					// 支付成功后执行相关业务
//					afterPay(out_trade_no, trade_no, trade_status, buyerEmail,
//							total,1);
//				} else {
//					logger.info("$$$$支付交易状态未知——商户订单号:" + out_trade_no
//							+ ";支付宝交易号:" + trade_no + ",交易状态:" + trade_status);
//				}
//			} else {
//				logger.info("$$$$支付验证失败——商户订单号:" + out_trade_no + ";支付宝交易号:"
//						+ trade_no + ",交易状态:" + trade_status);
//			}
//			ResponseUtils.renderText(response, "success");
//		} catch (Exception e) {
//			logger.info("$$$$支付后业务逻辑异常:" + e.getMessage(), e);
//			ResponseUtils.renderText(response, "fail");
//		}
//	}
//	
//	@RequestMapping(value="/upmpWapNotify",method=RequestMethod.POST)
//	public String upmpWapNotify(HttpServletRequest req,
//			HttpServletResponse resp) throws Exception {
//		logger.info("@@@@收到upmpWebNotify通知信息,进入notify流程@@@@");
//		
//		try {
//			req.setCharacterEncoding("ISO-8859-1");
//			String encoding = req.getParameter(SDKConstants.param_encoding);
//			String pageResult = "/m/order";
//			Map<String, String> respParam = getAllRequestParam(req);
//
//			// 打印请求报文
//			LogUtil.printRequestLog(respParam);
//
//			Map<String, String> valideData = null;
//			StringBuffer page = new StringBuffer();
//			if (null != respParam && !respParam.isEmpty()) {
//				Iterator<Entry<String, String>> it = respParam.entrySet()
//						.iterator();
//				valideData = new HashMap<String, String>(respParam.size());
//				while (it.hasNext()) {
//					Entry<String, String> e = it.next();
//					String key = (String) e.getKey();
//					String value = (String) e.getValue();
//					value = new String(value.getBytes("ISO-8859-1"), encoding);
//					page.append("<tr><td width=\"30%\" align=\"right\">" + key
//							+ "(" + key + ")</td><td>" + value + "</td></tr>");
//					valideData.put(key, value);
//				}
//			}
//			if (!SDKUtil.validate(valideData, encoding)) {
//				page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>失败</td></tr>");
//				LogUtil.writeLog("@@@验证签名结果[失败].");
//			} else {
//				page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>成功</td></tr>");
//				LogUtil.writeLog("@@@验证签名结果[成功].");
//			}
////			req.setAttribute("result", page.toString());
////			req.getRequestDispatcher(pageResult).forward(req, resp);
//			LogUtil.writeLog("@@@upmpWebNotify前台接收报文返回结束");
//			return "redirect:/m/order";
//
//		} catch (Exception e) {
//			LogUtil.writeLog("@@@upmpWebNotify前台接收报文返回失败");
//		}
//		return "redirect:/m/order";
//	}
//	
//	@RequestMapping(value="/upmpWebNotify",method=RequestMethod.POST)
//	public String upmpWebNotify(HttpServletRequest req,
//			HttpServletResponse resp) throws Exception {
//		logger.info("@@@@收到upmpWebNotify通知信息,进入notify流程@@@@");
//		
//		try {
//			req.setCharacterEncoding("ISO-8859-1");
//			String encoding = req.getParameter(SDKConstants.param_encoding);
//			String pageResult = "/web/userCenter/order";
//			Map<String, String> respParam = getAllRequestParam(req);
//			
//			// 打印请求报文
//			LogUtil.printRequestLog(respParam);
//
//			Map<String, String> valideData = null;
//			StringBuffer page = new StringBuffer();
//			if (null != respParam && !respParam.isEmpty()) {
//				Iterator<Entry<String, String>> it = respParam.entrySet()
//						.iterator();
//				valideData = new HashMap<String, String>(respParam.size());
//				while (it.hasNext()) {
//					Entry<String, String> e = it.next();
//					String key = (String) e.getKey();
//					String value = (String) e.getValue();
//					value = new String(value.getBytes("ISO-8859-1"), encoding);
//					page.append("<tr><td width=\"30%\" align=\"right\">" + key
//							+ "(" + key + ")</td><td>" + value + "</td></tr>");
//					valideData.put(key, value);
//				}
//			}
//			if (!SDKUtil.validate(valideData, encoding)) {
//				page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>失败</td></tr>");
//				LogUtil.writeLog("@@@验证签名结果[失败].");
//			} else {
//				page.append("<tr><td width=\"30%\" align=\"right\">验证签名结果</td><td>成功</td></tr>");
//				LogUtil.writeLog("@@@验证签名结果[成功].");
//			}
////			req.setAttribute("result", page.toString());
////			req.getRequestDispatcher(pageResult).forward(req, resp);
//
//			LogUtil.writeLog("@@@upmpWebNotify前台接收报文返回结束");
//			return "redirect:/web/userCenter/order";
//		} catch (Exception e) {
//			LogUtil.writeLog("@@@upmpWebNotify前台接收报文返回失败");
//		}
//		return "redirect:/web/userCenter/order";
//	}
//	
//	/**
//	 * 获取银联Notify过来反馈信息
//	 */
//	@RequestMapping(value = "/upmpMobileNotify")
//	public void upmpMobileNotify(HttpServletRequest request,
//			HttpServletResponse response) throws Exception {
//		LogUtil.writeLog("@@@@upmpMobileNotify接收后台通知开始");
//		
//		try {
//
//			request.setCharacterEncoding("ISO-8859-1");
//			String encoding = request.getParameter(SDKConstants.param_encoding);
//			// 获取请求参数中所有的信息
//			Map<String, String> reqParam = getAllRequestParam(request);
//			// 打印请求报文
//			LogUtil.printRequestLog(reqParam);
//
//			Map<String, String> valideData = null;
//			if (null != reqParam && !reqParam.isEmpty()) {
//				Iterator<Entry<String, String>> it = reqParam.entrySet().iterator();
//				valideData = new HashMap<String, String>(reqParam.size());
//				while (it.hasNext()) {
//					Entry<String, String> e = it.next();
//					String key = (String) e.getKey();
//					String value = (String) e.getValue();
//					value = new String(value.getBytes("ISO-8859-1"), encoding);
//					valideData.put(key, value);
//				}
//			}
//			
//			// 商户订单号
//			String out_trade_no = new String(request
//					.getParameter("orderId").getBytes("ISO-8859-1"),
//					"UTF-8");
//			// 查询流水号
//			String trade_no = new String(request.getParameter("queryId").getBytes(
//					"ISO-8859-1"), "UTF-8");
//			// 响应码
//			String respCode = new String(request.getParameter("respCode")
//					.getBytes("ISO-8859-1"), "UTF-8");
//			// 交易状态
//			String transStatus = new String(request.getParameter("respMsg")
//					.getBytes("ISO-8859-1"), "UTF-8");
//			BigDecimal total = new BigDecimal(valideData.get("txnAmt")).divide(new BigDecimal(100));
//			// 验证签名
//			if (!SDKUtil.validate(valideData, encoding)) {
//				LogUtil.writeLog("@@@@验证签名结果[失败].");
//			} else {
//				LogUtil.writeLog("@@@@验证签名结果[成功].");
//				if (null != transStatus && transStatus.equals("Success!")) {
//					afterPay(out_trade_no, trade_no, transStatus, "", total,2);
//				} else {
//					logger.info("@@@@支付交易状态未知——订单号:" + out_trade_no + ";响应码:"
//							+ respCode + ";银联查询流水号:" + trade_no + ",交易状态:"
//							+ transStatus);
//				}
//				
//			}
//
//			LogUtil.writeLog("BackRcvResponse接收后台通知结束");
//			ResponseUtils.renderText(response, "success");
//		} catch (Exception e) {
//			logger.info("$$$$支付后业务逻辑异常:" + e.getMessage(), e);
//			ResponseUtils.renderText(response, "fail");
//		}
//		
//	}
//	
//	@SuppressWarnings("unchecked")
//	@RequestMapping("/wxMobileNotify")
//	public void wxMobileNotify(HttpServletRequest request,
//			HttpServletResponse response)  throws Exception{
//		
//		logger.info("@@@@收到微信支付信息,进入notify流程@@@@");
//		
//		try {
//			InputStream in = request.getInputStream();
//			String s = null;
//			BufferedReader br = new BufferedReader(new InputStreamReader(in,"utf-8"));
//			StringBuffer sb = new StringBuffer();
//			while ((s=br.readLine()) != null) {
//				sb.append(s);
//			}
//			br.close();
//			in.close();
//			Map<String, String> params = XMLUtil.doXMLParse(sb.toString());
//			
//			SortedMap<String, String> newParams = new TreeMap<String, String>(params);
//			
//			String out_trade_no = (String)params.get("out_trade_no");
//			
//			String trade_no = (String)params.get("transaction_id");
//			//总金额，分
//			String total = (String)params.get("total_fee");
//			
//			String respCode = (String)params.get("result_code");
//			
//			String openId = (String)params.get("openid");
//			
//			if (WxPrepay.isValiSign(newParams)){
//				logger.info("@@@@验证成功@@@@");
//				if (respCode != null && respCode.equals("SUCCESS")){
//					afterPay(out_trade_no, trade_no, respCode, openId, new BigDecimal(total).divide(new BigDecimal(100)),3);
//				}else {
//					logger.info("@@@@支付交易状态未知——订单号:" + out_trade_no + ";交易状态:"
//							+ respCode + ";微信支付订单号:" + trade_no );
//				}
//			}else {
//				logger.info("@@@@验证失败@@@@");
//			}
//		} catch (Exception e) {
//			logger.info("@@@@支付后业务逻辑异常"+e.getMessage()+"@@@@");
//		}
//		
//	}
//	
//	/**
//	 * 获取请求参数中所有的信息
//	 * 
//	 * @param request
//	 * @return
//	 */
//	public static Map<String, String> getAllRequestParam(final HttpServletRequest request) {
//		Map<String, String> res = new HashMap<String, String>();
//		Enumeration<?> temp = request.getParameterNames();
//		if (null != temp) {
//			while (temp.hasMoreElements()) {
//				String en = (String) temp.nextElement();
//				String value = request.getParameter(en);
//				res.put(en, value);
//				//在报文上送时，如果字段的值为空，则不上送<下面的处理为在获取所有参数数据时，判断若值为空，则删除这个字段>
//				//System.out.println("ServletUtil类247行  temp数据的键=="+en+"     值==="+value);
//				if (null == res.get(en) || "".equals(res.get(en))) {
//					res.remove(en);
//				}
//			}
//		}
//		return res;
//	}
//
//	/**
//	 * 支付后的业务操作
//	 * 
//	 * @param out_trade_no
//	 * @param trade_no
//	 * @param trade_status
//	 * @param buyerEmail
//	 * @param total
//	 * @throws Exception
//	 */
//	private void afterPay(String out_trade_no, String trade_no,
//			String trade_status, String buyerEmail, BigDecimal total, Integer payPlatform)
//			throws Exception {
//		synchronized (this) {
//			
//		}
//	}
//	
//	private String pushOrderToStore(Order order){
//		String ret = "";
//		String content = "您有一条新的付款订单，请及时处理！";
//		{ //推送到app
//			
//			Map<String, Object> params = new HashMap<String, Object>();
//			params.put("redirectType", 1);
//			params.put("msg_android", content);
//			ret = GetuiStorePushUtil.pushToSingle(params, content, order.getStoreId());
//		}
//		{//推送到后台网站
//			try {
//				Store store = storeService.selectByPrimaryKey(order.getStoreId());
//				JSONObject json = new JSONObject();
//				json.put("code", 1);
//				StringBuilder sb = new StringBuilder();
//				sb.append(content).append("<br/>")
//				.append("金额:").append(StringUtil.bigToString(order.getTotalPay())).append("元").append("<br/>")
//				.append("地址:").append(order.getUserAddress());
//				json.put("msg", sb);
//		 
//				handler.sendMessageToUser("store", store.getAccount(),json.toString());
//			} catch (Exception e) {
//				// TODO Auto-generated catch block
//				e.printStackTrace();
//			}
//		}
//		
//		return ret;
//	}
//
//	/**
//	 * 现金券拆分方法
//	 */
//	private BigDecimal realCash(BigDecimal t, BigDecimal temp) throws Exception {
//		if (t.floatValue() <= 0) t=BigDecimal.ZERO;
//		return t.floatValue() > temp.floatValue() ? temp : t;
//	}
//	/**
//	 * 现金券拆分方法
//	 */
//	private BigDecimal divCash(Integer index, Integer size,BigDecimal hasCash, BigDecimal cash, BigDecimal temp, BigDecimal total) throws Exception {
//		index += 1;
//		size += 1;
//		BigDecimal t = BigDecimal.ZERO;
//		if (index == size){
//			t = cash.subtract(hasCash);
//		}else {
//			t = temp.multiply(cash).divide(total, RoundingMode.HALF_UP).setScale(0, RoundingMode.HALF_UP) ;
//		}
//		t = realCash(t, temp);
//		hasCash = hasCash.add(t);
//		return t;
//	}
//
//	/**
//	 * 用户实际需要支付的价格
//	 * @param ex
//	 * @return BigDecimal
//	 * @throws Exception
//	 */
//	private BigDecimal getPrice(Order ex) throws Exception {
//		BigDecimal price = ex.getTotalPay();
//		if (price != null) {
//			if (ex.getCashCoupon() != null) {
//				price = price.subtract(ex.getCashCoupon());
//			}
//			if (ex.getPriceChange() != null) {
//				price = price.subtract(ex.getPriceChange());
//			}
//			if (ex.getShipPrice() != null) {
//				price = price.add(ex.getShipPrice());
//			}
//		}
//		return price == null ? BigDecimal.ZERO : price;
//	}
//}
//
